import java.util.Scanner;

public class PrintAsterisk {

    int spaceCount, starCount;
    String printOneAsterisk() {
        String stringToDisplay = "";
        stringToDisplay += "*";
        return stringToDisplay;
    }

    String printHorizontalAsterisk() {
        String stringToDisplay = "";
        int number;
        number = getInputForPrinting();
        for ( int i = 0; i < number; i++) {
            stringToDisplay += " $";
        }
        return stringToDisplay;
    }

    String printVerticalAsterisk() {
        String stringToDisplay = "";
        int number;
        number = getInputForPrinting();
        for ( int i = 0; i < number; i++) {
            stringToDisplay += "$\n";
        }
        return stringToDisplay;
    }

    String printRightTriangle() {
        String stringToDisplay = "";
        int number;
        number = getInputForPrinting();
        for (int i = 0; i < number; i++) {
            for (int j = 0; j <= i; j++) {
                stringToDisplay += "$";
            }
            stringToDisplay += "\n";
        }
        return stringToDisplay;
    }

    String printUpperTriangle(int number) {

        String stringToDisplay = "";
        for ( int i = 0; i < number; i++ ) {
            for ( int j = 0; j < spaceCount; j++) {
                stringToDisplay += " ";
            }
            spaceCount--;
            for ( int k = 0; k < starCount; k++) {
                stringToDisplay += "$";
            }
            starCount += 2;
            stringToDisplay += "\n";
        }
        return stringToDisplay;
    }

    String printLowerTriangle ( int number) {

        String stringToDisplay = "";

        for (int i = 0; i < number - 1; i++) {
            for (int j = 0; j < spaceCount; j++) {
                stringToDisplay += " ";
            }
            spaceCount++;
            for (int k = 0; k < starCount; k++) {
                stringToDisplay += "$";
            }
            starCount -= 2;
            stringToDisplay += "\n";
        }
        return stringToDisplay;
    }
    String printIsoscelesTriangle() {

        int number;
        String stringToDisplay = "";
        number = getInputForPrinting();
        spaceCount = number+1;
        starCount = 1;

        stringToDisplay += printUpperTriangle(number);

        return stringToDisplay;
    }

    String printDiamond() {
        int number;
        String stringToDisplay = "";
        number = getInputForPrinting();

        spaceCount = number - 1;
        starCount = 1;

        stringToDisplay += printUpperTriangle(number);

        spaceCount = 1;
        starCount = starCount - 4;

        stringToDisplay += printLowerTriangle(number);

        return stringToDisplay;
    }

    String printDiamondWithName() {

        int number,i;
        String stringToDisplay = "";
        number = getInputForPrinting();

        starCount = 1;
        spaceCount = number - 1;
        stringToDisplay += printUpperTriangle(number-1);

        stringToDisplay += "Aswathi\n";

        starCount = starCount - 2;
        spaceCount = 1;
        stringToDisplay += printLowerTriangle(number);

        return stringToDisplay;

    }

    int getInputForPrinting() {

        Scanner scanner = new Scanner(System.in);
        int number;

        System.out.println(" Enter the number of * to be printed ");
        number = scanner.nextInt();

        return number;

    }

    public static void main(String[] args) {

        PrintAsterisk printAsterisk = new PrintAsterisk();
        String stringToDisplay = "";

        System.out.println("\nPrinting one asterisk\n");
        stringToDisplay = printAsterisk.printOneAsterisk();
        System.out.println("\n"+stringToDisplay+"\n");

        System.out.println("\nPrinting horizontal asterisk\n");
        stringToDisplay = printAsterisk.printHorizontalAsterisk();
        System.out.println("\n" + stringToDisplay + "\n");

        System.out.println("\nPrinting vertical asterisk\n");
        stringToDisplay = printAsterisk.printVerticalAsterisk();
        System.out.println("\n"+stringToDisplay+"\n");

        System.out.println("\nPrinting right triangle asterisk\n");
        stringToDisplay = printAsterisk.printRightTriangle();
        System.out.println("\n"+stringToDisplay+"\n");

        System.out.println("\nPrinting isosceles triangle asterisk\n");
        stringToDisplay = printAsterisk.printIsoscelesTriangle();
        System.out.println("\n"+stringToDisplay+"\n");

        System.out.println("\nPrinting diamond asterisk\n");
        stringToDisplay = printAsterisk.printDiamond();
        System.out.println("\n"+stringToDisplay+"\n");

        System.out.println("\nPrinting diamond with name asterisk\n");
        stringToDisplay = printAsterisk.printDiamondWithName();
        System.out.println("\n"+stringToDisplay+"\n");
    }
}
